package com.ljx.Array;

/**
 * @author 李加喜
 * @Package com.ljx.Array
 * @date 2021-11-21 10:00
 */
// 303 区域和检索  preSum[i] 记录 nums[0..i-1] 的累加和
public class NumArray {
    public static void main(String[] args) {

    }
    // 使用前缀和解法  既然计算的是left~right  那么将right的和减去left的和就是了
    int[] preNum;
    public NumArray(int[] nums) {
        preNum=new int[nums.length+1];
        //nums累加和  此时的preNum[i]对应的就是i前几个数的和
        for(int i=1;i<preNum.length;i++){
            // 因为初始位置对应的是0
            preNum[i]=preNum[i-1]+nums[i-1];
        }
    }

    public int sumRange(int left, int right) {
        // int res=0;
        // for(int i=left;i<=right;i++){
        //     res+=nums[i];
        // }
        // return res;
        return preNum[right+1]-preNum[left];
    }
}
